package com.example.orderflow.service;

import java.util.List;

import com.example.orderflow.entity.query.OrderIdGenerationQuery;
import com.example.orderflow.entity.po.OrderIdGeneration;
import com.example.orderflow.entity.vo.PaginationResultVO;


/**
 *  业务接口
 */
public interface OrderIdGenerationService {

	/**
	 * 根据条件查询列表
	 */
	List<OrderIdGeneration> findListByParam(OrderIdGenerationQuery param);

	/**
	 * 根据条件查询列表
	 */
	Integer findCountByParam(OrderIdGenerationQuery param);

	/**
	 * 分页查询
	 */
	PaginationResultVO<OrderIdGeneration> findListByPage(OrderIdGenerationQuery param);

	/**
	 * 新增
	 */
	Integer add(OrderIdGeneration bean);

	/**
	 * 批量新增
	 */
	Integer addBatch(List<OrderIdGeneration> listBean);

	/**
	 * 批量新增/修改
	 */
	Integer addOrUpdateBatch(List<OrderIdGeneration> listBean);

	/**
	 * 多条件更新
	 */
	Integer updateByParam(OrderIdGeneration bean,OrderIdGenerationQuery param);

	/**
	 * 多条件删除
	 */
	Integer deleteByParam(OrderIdGenerationQuery param);

	/**
	 * 根据Id查询对象
	 */
	OrderIdGeneration getOrderIdGenerationById(Integer id);


	/**
	 * 根据Id修改
	 */
	Integer updateOrderIdGenerationById(OrderIdGeneration bean,Integer id);


	/**
	 * 根据Id删除
	 */
	Integer deleteOrderIdGenerationById(Integer id);

	/**
	 * 获取最新数据
	 */
	OrderIdGeneration getLatestOrderIdGeneration();

	/**
	 * 根据订单类型获取最新数据
	 */
	OrderIdGeneration getLatestOrderIdGenerationByOrderType(String orderType);

	/**
	 * 生成最新订单号
	 */
	public String generateNewOrderId(String orderType);

	/**
	 * 根据订单编号存入
	 */
	Integer addOrderIdGeneration(String orderId);

}